Database management systems provide for storage and retrieval of data. As the volume of data storage increases methods for effectively scaling database management functions have become more desirable so that access to data may be efficiently processed. One manner in which scalability is achieved is through the use of shared nothing parallelism systems or data partitioning. In a shared nothing parallelism system, resources are not shared. That is, data partitions do not share processors or memory. Rather, each partition is a separate entity. Data partitioning may provide ready scalability by separating physical resources so that growing databases may be more efficiently accessed.
As least some data management systems store XML as a native data type. Queries and retrieval of XML data may be accomplished by operating on XML in its native format. CPU intensive operations such as ‘navigation’ may introduce inefficiencies in large databases storing XML data. To manipulate XML data, reference based languages such as SQLX and XQuery may be utilized. SQLX and XQuery languages function with references to sequences, XML data, atomic values, etc. Utilizing reference based languages in a parallelism supported system may provide for parallelizing CPU intensive operations like ‘navigation,’ which may provide processing efficiencies.
In an IBM DB2® for Linux, Unix and Windows (hereinafter, DB2 LUW) database management system, XML may be stored as a native data type. As noted above, evaluation of some XPath expressions (i.e. navigation) is a CPU intensive operation in such systems as noted above. Extending the XML functionality (in the form of storing table with XML data in a distributed or replicated fashion) through utilization of reference based languages to DB2 LUW's shared nothing parallelism version would allow DB2 LUW to parallelize the navigation operation to the partitions where XML data is stored.
As such, methods for evaluation of reference based operations in shared nothing parallelism systems are presented herein.